package com.lovi.reflect;

import java.lang.reflect.Field;

/*
练习1:通过反射修改私有成员变量
定义PrivateTest类，有私有name属性，并且属性值为hellokitty
提供getName的公有方法
创建PrivateTest的类，利用Class类得到私有的name属性，修改私有的name属性值
并调用getName()的方法打印name属性值
 */


public class Test02 {
    public static void main(String[] args) throws Exception {
        // 创建PrivateTest类的实例
        PrivateTest privateTest = new PrivateTest();

        // 获取私有的name字段
        Field nameField = PrivateTest.class.getDeclaredField("name");

        // 设置字段可访问
        nameField.setAccessible(true);

        // 修改私有字段的值
        nameField.set(privateTest, "newHelloKitty");

        // 调用getName方法并打印结果
        System.out.println(privateTest.getName());
    }
}

class PrivateTest {
    private String name = "hellokitty";

    public String getName() {
        return name;
    }
}



